.TITLE DRTBL .IDENT /05.15/ ; ; Copyright (c) 1995-1999 by Mentec, Inc., U.S.A. ; All rights reserved ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED ; OR COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE. ; ; B. S. MCCARTHY 17-MAR-81 ; ; MODIFIED FOR RSX-11M-PLUS V2.1: ; ; J. R. KAUFFMAN ; T. M. MARTIN ; B. S. MCCARTHY ; ; MODIFIED FOR RSX-11M-PLUS VERSION 3.0 BY: ; ; J. W. BERZLE ; J. R. KAUFFMAN ; J. M. LAWLER ; B. S. MCCARTHY ; ; MODIFIED FOR RSX-11M-PLUS VERSION 4.0 BY: ; ; B. S. MCCARTHY ; K. L. NOEL ; ; MODIFIED FOR VAX-CoProcessor/RSX VERSION 1.0 BY: ; ; PAUL K. M. WEISS ; ; MODIFIED FOR RSX-11M-PLUS VERSION 4.3 BY: ; ; B. S. MCCARTHY / K. L. NOEL ; ; MODIFIED FOR RSX-11M-PLUS VERSION 4.3 BY: ; ; B. S. MCCARTHY 9-JUL-90 05.15 ; ; BM430 -- ADD ABILITY TO USE UNIVERSAL RECEIVER TASK ; ; BM431 -- ADD SEND DATA AND UNSTOP DIRECTIVE ; ; DIRECTIVE DISPATCHER TABLE ; ; THIS MODULE WAS SPLIT OUT OF DRTBL AND RESTRUCTURED TO ALLOW FOR ; MORE DIRECTIVE FLAGS, STREAMLINE DIRECTIVE PROCESSING, AND TO ALLOW ; THIS MODULE TO BE PLACED IN THE DIRECTIVE COMMON ; ; .PAGE ;+ ; DEFINE BITS FOR THE DIRECTIVE DISPATCH TABLE ;- ; ; THE DIRECTIVE DISPATCHER BITS OCCUPY A WORD FLAG TABLE. THERE ARE THREE ; GROUPS OF BITS, SHOWN WITH SUBOPTIONS BELOW: ; ; ACHKDB - ADDRESS CHECK AND MAP PLAS DEFINITION BLOCK. THE DPB IS TWO ; WORDS, THE SECOND OF WHICH IS THE ADDRESS OF A REGION OR ; WINDOW DEFINITION BLOCK, 8 WORDS LONG. THE STURCTURE IS ; ADDRESS CHECKE AND MAPPED, AND IF VALID IS PASSED IN LIEU OF ; THE DPB TO THE DIRECTIVE ROUTINE. ; ; CEFNCL - CALL $CEFN. THE DPB CONTAINS AN EVENT FLAG NUMBER WHICH IS ; CONVERTED TO A MASK WORD AND ADDRESS. ; ; CEFNMT - AN ERROR OF D.RS97 IS RETURNED IF THE EFN IN THE DPB IS ; NULL (NO EVENT FLAG SPECIFIED). ; ; GEFUSE - IF THE SPECIFIED EVENT FLAG IS GROUP GLOBAL, DO NOT ; INCREMENT THE USE COUNT. ; ; SRSTCL - DIRECTIVE DEALS WITH A TCB, DPB CONTAINS NAME. DISPATCHER ; CALLS $SRSTD (OR SIMILAR) AND RETURNS ERROR D.RS2 IF TASK ; SPECIFIED IN THE DPB IS NOT INSTALLED. ; ; DFCTSK - IF THE TASK NAME IN THE DPB IS NULL (BINARY ZERO), THE ; CURRENT TASK IS USED. ; MUPCHK - MULTI-USER PROTECTION CHECKS. THE TARGET TASK MUST HAVE ; THE SAME TI: AS THE ISSUING TASK, OR THE ISSUING TASK ; MUST BE PRIVILEGED ; CRETCB - IPLIES THAT THE DIRECTIVE MAY CREATE A TCB FROM A PROTO- ; TYPE, AND THEREFORE SUPPRESSES THE SEARCH FOR A MULTI- ; USER COPY OF THE TASK FROM THIS TERMINAL. (IMPLIES ; SECTCB) ; SECTCB - THIS DIRECTIVE MAY DEAL WITH TCBS IN SECONDARY POOL ; USEURT - THIS DIRECTIVE CAN USE THE UNIVERSAL RECEIVER TASK ; IF ITS TARGET TASK IS NOT FOUND ; ; ANY SUB-FUNCTION BIT IMPLIES THE MAJOR FUNCTION BIT. THE THREE ; MAJOR FUNCTIONS ARE MUTUALLY EXCLUSIVE. ; ; THE POSITION OF THE BITS WITHIN THE FLAGS WORD IS AS FOLLOWS ; ; 15 14 13 12 11 10 9 8 | 7 6 5 4 3 2 1 0 ; +---+---+----+---+---+---+---+---+---+---+---+---+---+---+---+---+ ; | | | | | | | | | | | | | | | | | ; | A | S | DC | M | U | | C | G | S | C | | | | | | | ; | C | E | FR | U | S | | E | E | R | E | | | | | | | ; | H | C | CE | P | E | | F | F | S | F | | | | | | | ; | K | T | TT | C | U | | N | U | T | N | | | | | | | ; | D | C | SC | H | R | | M | S | C | C | | | | | | | ; | B | B | KB | K | T | | T | E | L | L | | | | | | | ; | | | | | | | | | | | | | | | | | ; +---+---+----+---+---+---+---+---+---+---+---+---+---+---+---+---+ ; | ; ; SPECIAL NOTE REGARDING PLAS DIRECTIVES: ; ; ALL DIRECTIVES SPECIFYING "ACHKDB" MUST BE BUILT IN THE PLAS ; DIRECTIVE COMMON (OR RESIDENT IN THE EXEC) SINCE THAT BIT TRIGGERS ; THE REMAPPING OF THE DIRECTIVE COMMON. THESE DIRECTIVES MUST USE ; THE DIRP MACRO SO THAT THE ADDRESSES ARE STORED UNADJUSTED. .PAGE ACHKDB = 100000 CEFNCL = 100 CEFNMT = 1000!CEFNCL GEFUSE = 400!CEFNCL SRSTCL = 200 SECTCB = 40000!SRSTCL DFCTSK = 20000!SRSTCL CRETCB = 20000!SRSTCL!SECTCB MUPCHK = 10000!SRSTCL USEURT = 4000!SRSTCL!SECTCB ;+ ; LOCAL MACROS ;- ; ; DEFINE DIRECTIVE DISPATCH TABLE ENTRY ; ; DIR ADDR,SIZE,MASK,COND,SCOND ; ; WHERE: ; ; ADDR=ADDRESS OF THE DIRECTIVE EXECUTION ROUTINE OR '.FALSE.'. ; SIZE=SIZE OF THE DPB REQUIRED BY THE DIRECTIVE ROUTINE. ; MASK=CONTROL BITS TO BE USED BY THE DIRECTIVE DISPATCHER. ; COND=EXPRESSION ON WHICH DIRECTIVE IS CONDITIONALIZED. A ; DEFAULT OF $DSTAB IS USED FOR CONVENIENCE (I.E. ; UNCONDITIONAL). ; SCOND=CONDITIONAL EXPRESSION ON WHICH SIZE BYTE IS TO BE ; ZERO (VARIABLE-LENGTH DPB). A DEFAULT OF XXXXXX ; IS USED FOR CONVENIENCE (I.E. SIZE IS NONZERO). ; .PAGE .MACRO DIR ADDR,SIZE,MASK,COND,SCOND .IF IDN ,<.FALSE.> DIRC .FALSE. .IFF DIRC ADDR,0,SIZE,,COND,SCOND .ENDC .ENDM DIR .MACRO DIR2 ADDR SIZE,MASK,COND,SCOND DIRC ADDR,100000,SIZE,,COND,SCOND .ENDM DIR2 .MACRO DIRP ADDR SIZE,MASK,COND,SCOND DIRC ADDR,REAL,SIZE,,COND,SCOND .ENDM DIRP .PAGE .MACRO DIRC ADDR,COM,SIZE,MASK,COND=$DSTAB,SCOND=XXXXXX .IF EQ PASS-1 .BLKW 3 .IF DIF ,<.FALSE.> .IF DF COND HI$DIC==<<.-$DSTAB>/6>-1 .GLOBL ADDR .ENDC ; DF COND .ENDC ; DIF ,<.FALSE.> .IFF ; EQ PASS-1 .IF GT TB$SIZ-<.-$DSTAB> .WORD 0 $$$=. .=.+TB$SIZ-2 .WORD 0 .=.+TB$SIZ-2 .WORD 0 .=$$$ .IF DIF ,<.FALSE.> .IF DF COND DSPMK=0 .IF NB .IRP X, DSPMK=DSPMK!X .ENDM .ENDC ;NB .IF DF SCOND DSPSZ=0 .IFF DSPSZ=SIZE*2 .ENDC ; DF SCOND HI$DIC==<<.-$DSTAB>/2>-1 .=.-2 .IF GT 28.-DSPSZ .BYTE DSPSZ,-<2*DSPSZ> .IFF .BYTE DSPSZ,0 .ENDC ; GT 28.-DSPSZ .=.+TB$SIZ-2 .IF DIF , .WORD <&77777>!COM .IFF ; DIF , .WORD ADDR .ENDC ; DIF , .=.+TB$SIZ-2 .WORD DSPMK .=$$$ .ENDC ; DF COND .ENDC ; DIF ADDR,<.FALSE.> .ENDC ; GT TB$SIZ-<.-$DSTAB> .ENDC ; EQ PASS-1 .ENDM .PAGE ;+ ; DEFINE SYMBOL INDICATING WHICH PASS THIS IS ;- .IF NDF PASS PASS = 1 .IFF PASS = 2 .ENDC ;+ ; DIRECTIVE DISPATCH TABLE ;- $DSTAB::DIR2 $DRQIO,12. ;001.-QUEUE I/O DIR2 $DRQIO,12. ;003.-QUEUE I/O AND WAIT DIR2 $DRGLI, 3., ,,G$$DVI ;005.-GET LUN ASSIGNMENT AND ; GET DEVICE INFORMATION DIR $DRASG, 4. ;007.-ASSIGN LUN DIR $DRATP, 4.,DFCTSK ;009.-ALTER PRIORITY DIR2 $DRREQ, 7.,CRETCB,,P$$OFF ;011.-REQUEST/SPAWN DIR .FALSE. ;013.-INVALID DIC DIR .FALSE. ;015.-INVALID DIC DIR $DRRUN,11.,SRSTCL ;017.-RUN TASK DIR .FALSE. ;019.-INVALID DIC DIR2 $DRRRA, 2., ,P$$LAS ;021.-REC BY REF AST DIR $DRMKT, 5.,CEFNCL ;023.-MARK TIME DIR $DRCSR, 3.,MUPCHK ;025.-CANCEL SCHEDULE REQUESTS DIR $DRCMS, 0. ;027.-CANCEL SELECTIVE MARK TIMES DIR2 $DREXS, 2., ,P$$OFF ;029.-EXIT WITH STATUS DIR $DRCEF, 2., ;031.-CLEAR EVENT FLAG DIR $DRSEF, 2., ;033.-SET EVENT FLAG DIR $DRDSE, 1. ;035.-DECLARE SIGNIFICANT EVENT DIR $DRREF, 2., ;037.-READ EVENT FLAG DIR $DRRAF, 0. ;039.-READ ALL(EXTENDED) EVENT FLAGS DIR $DRWFS, 2.,CEFNMT ;041.-WFR SINGLE EVENT FLAG DIR $DRWFL, 3. ;043.-WAITFOR LOGICAL OR OF ; EVENT FLAGS DIR $DRSPN, 1. ;045.-SUSPEND EXECUTION DIR $DRRES, 3.,DFCTSK ;047.-RESUME TASK EXECUTION DIR $DRWSE, 1. ;049.-WAITFOR SIGNIFICANT EVENT DIR $DREXT, 1. ;051.-TASK EXIT DIR $DREIF, 2., ;053.-EXIT IF DIRP $DRCRR, 2.,ACHKDB,P$$LAS ;055.-CREATE REGION DIRP $DRATR, 2.,ACHKDB,P$$LAS ;057.-ATTACH REGION DIRP $DRDTR, 2.,ACHKDB,P$$LAS ;059.-DETACH REGION DIR $DRGTP, 0. ;061.-GET TIME PARAMETERS DIR $DRGTK, 2. ;063.-GET TASK PARAMETERS DIR $DRGPP, 4. ;065.-GET PARTITION PARAMETERS DIR .FALSE. ;067.-INVALID DIC DIR $DRSRF, 5.,SECTCB,P$$LAS ;069.-SEND BY REFERENCE .IF DF P$$OOL DIR $DRSND, 0.,USEURT ;071.-SEND (AND VARIABLE SEND) DATA .IFF DIR $DRSND, 5.,SRSTCL ;071.-SEND DATA TO TASK .ENDC DIR .FALSE. ;073.-INVALID DIC .IF DF P$$OOL DIR $DRREC, 0. ;075.-RECEIVE (AND VARIABLE ; REC) DATA DIR $DRREC, 0. ;077.-REC (AND VAR REC) DATA OR EXIT .IFF DIR $DRREC, 4. ;075.-RECEIVE DATA FROM TASK DIR $DRREC, 4. ;077.-RECEIVE DATA FROM TASK OR EXIT .ENDC DIR .FALSE. ;079.-INVALID DIC DIRP $DRRRF, 2.,ACHKDB,P$$LAS ;081.-RCV BY REFERENCE DIR $DRABO, 3.,MUPCHK ;083.-ABORT TASK DIR .FALSE. ;085.-INVALID DIC DIR .FALSE. ;087.-INVALID DIC DIR2 $DREXP, 3., ,E$$XPR ;089.-EXTEND PARTITION DIR .FALSE. ;091.-INVALID DIC DIR .FALSE. ;093.-INVALID DIC DIR $DRDCP, 1. ;095.-DISABLE CHECKPOINTING DIR $DRECP, 1. ;097.-ENABLE CHECKPOINTING DIR $DRDAR, 1. ;099.-DISABLE AST RECOGNITION DIR $DREAR, 1. ;101.-ENABLE AST RECOGNITION DIR $DRSDV, 3. ;103.-SPECIFY ODT SST VECTOR DIR $DRSTV, 3. ;105.-SPECIFY TASK SST VECTOR DIR2 $DRRCV, 2. ;107.-SETUP FOR RECEIVE AST DIR2 $DRPUT, 2., ,P$$RFL ;109.-SETUP FOR POWER UP AST DIR2 $DRFEX, 2., ,F$$LPP ;111.-SETUP FOR FLP AST DIR $DRGMX, 2., ,P$$LAS ;113.-GET MAPPING CONTEXT DIR $DRATX, 1. ;115.-AST TRAP EXIT DIRP $DRCRW, 2.,ACHKDB,P$$LAS ;117.-CREATE ADDRESS WINDOW DIRP $DRELW, 2.,ACHKDB,P$$LAS ;119.-ELIMINATE ADDRESS WINDOW DIRP $DRMAP, 2.,ACHKDB,P$$LAS ;121.-MAP ADDRESS WINDOW DIRP $DRUNM, 2.,ACHKDB,P$$LAS ;123.-UNMAP ADDRESS WINDOW DIR $DRGSS, 1., ,G$$TSS ;125.-GET SENSE SWITCHES DIR2 $DRGCL, 0. ;127.-GET MCR COMMAND LINE DIR2 $DRCIN, 7., ,C$$INT ;129.-CONNECT TO INTERRUPT DIR $DRSTP, 1. ;131.-STOP TASK DIR $DRUNS, 3.,DFCTSK ;133.-UNSTOP TASK DIR $DRSTS, 2.,CEFNMT ;135.-STOP FOR SNGL EFN DIR $DRSTL, 3. ;137.-STOP FOR LOGICAL OR OF EFN'S .IF DF P$$OOL DIR $DRRCS, 0. ;139.-RECEIVE (AND VAR REC) ; DATA OR STOP .IFF DIR $DRRCS, 4. ;139.-RECEIVE DATA OR STOP .ENDC DIR2 $DRSRC, 0.,USEURT,P$$OFF ;141.-SDRC DIR2 $DRCNC, 6.,SRSTCL,P$$OFF ;143.-CONNECT TO TASK DIR2 $DRLOG, 0., ,C$$RLG ;145.-ELP DIRECTIVES FOR CPR DIR2 $DREMS, 4., ,P$$OFF ;147.-EMIT STATUS DIR $DRCRV, 5., ,V$$TRM ;149.-CREATE VIRTUAL TERMINAL DIR $DRELV, 2., ,V$$TRM ;151.-ELIMINATE VIRTUAL TERMINAL DIR .FALSE. ;153.-INVALID DIC DIR $DRSCA, 3., ,S$$LIB ;155.-SUPERVISOR MODE CALL DIR $DRCRE, 2., ,G$$GEF ;157.-CREATE GROUP GLOBAL ; EVENT FLAGS DIR $DRELE, 0., ,G$$GEF ;159.-ELIMINATE GROUP GLOBAL ; EVENT FLAGS DIR $DRSAF, 2., ,M$$PRO ;161.-SPECIFY AFFINITY DIR $DRRMA, 1., ,M$$PRO ;163.-REMOVE AFFINITY DIR2 $DRPER, 2., ,P$$RTY ;165.-SET UP FOR PARITY ERROR AST DIR2 $DRREX, 0. ;167.-SET UP FOR REQUESTED EXIT AST DIR2 $DRGIN, 0., ,R$$GIN ;169.-GET / PUT SYSTEM INFORMATION DIR2 $DRSMG, 0., ,E$$LOG ;171.-SEND MESSAGE TO ERROR LOGGING DIR2 $DRCLI, 0., ,A$$CLI ;173.-CLI DIRECTIVE DIR $DRSWS, 3., ,S$$WST ;175.-SWITCH STATE DIR $DRFEA, 2., ,R$$FEA ;177.-FEAT$ TEST FEATURE MASK DIR $DRSND, 0.,SECTCB!USEURT ;179.-SEND (AND VARIABLE SEND) DATA ; AND UNSTOP DIR .FALSE. ;181.-RESERVED RSX-11M FUTURE USE DIR .FALSE. ;183.-RESERVED RSX-11M FUTURE USE DIR .FALSE. ;185.-RESERVED RSX-11M FUTURE USE DIR .FALSE. ;187.-RESERVED RSX-11M FUTURE USE DIR .FALSE. ;189.-RESERVED RSX-11M FUTURE USE DIR .FALSE. ;191.-RESERVED FOR USER USE DIR .FALSE. ;193.-RESERVED FOR USER USE DIR .FALSE. ;195.-RESERVED FOR USER USE DIR .FALSE. ;197.-RESERVED FOR USER USE DIR .FALSE. ;199.-RESERVED FOR USER USE DIR $DRSMP, 2., ,S$$MAP ;201.-MODIFY SUPERVISOR MAPPING DIR $DRMVS, 4., ,S$$MAP ;203.-MOVE TO/FROM VARIOUS ; TASK SPACES DIR2 $DRCPC, 3., ,C$$PCR ;205.-CPCR DIR2 $DRLOG, 0., , ;207.-LOGICAL NAME DIRECTIVES DIR $DRTFE, 2., ,R$$FEA ;209.-TFEA$ TEST TASK FEATURE DIR $DRBOM, 3. ;211.-BREAKPOINT OR MESSAGE DIRP $DRRRF, 2.,ACHKDB,P$$LAS ;213.-RECEIVE DATA OR STOP DIR .FALSE. ;209.-RESERVED RSX-11M+ FUTURE USE .=$DSTAB+<*6> ;TRUNCATE UNUSED PORTION OF TABLE AT END TB$SIZ == <.-$DSTAB>/3 .END